#include "prekompil.h"
#include "opcje.h"

Opcje * Opcje::opcje = 0;
SekcjaKrytyczna Opcje::sekcja;

Opcje & Opcje::PobierzOpcje()
   {
   AutoZamek zamek(sekcja);
   if (opcje == 0)
      opcje = new Opcje("config.txt");
   return *opcje;
   }

Opcje::Opcje(const string & nazwa_pliku) : nazwa_pliku(nazwa_pliku)
   {
   czas_skanowania = 0;
   Odczytaj();
   }

void Opcje::Zapisz()
   {
   cout<<"zapis\n";
   ofstream plik;
   plik.open(nazwa_pliku.c_str());
   plik << nazwa_uslugi << endl;
   plik << opis_uslugi << endl;
   plik << katalog_skanera << endl;
   plik << serwer << endl;
   plik << login << endl;
   plik << haslo << endl;
   plik << zdalny_katalog << endl;
   plik << czas_skanowania << endl;
   plik.close();
   }

void Opcje::Odczytaj()
   {
   ifstream plik;
   plik.open(nazwa_pliku.c_str());
   if (!plik)
      return;
   string linia;

   getline(plik, nazwa_uslugi);
   getline(plik, opis_uslugi);
   getline(plik, katalog_skanera);
   getline(plik, serwer);
   getline(plik, login);
   getline(plik, haslo);
   getline(plik, zdalny_katalog);
   getline(plik, linia);
   czas_skanowania = atoi(linia.c_str());
   plik.close();
   }

void Opcje::ZapiszCzasSkanowania(time_t czas_skanowania)
   {
   AutoZamek zamek(sekcja);
   this->czas_skanowania = czas_skanowania;
   Zapisz();
   }

time_t Opcje::OdczytajCzasSkanowania()
   {
   AutoZamek zamek(sekcja);
   return czas_skanowania;
   }

string Opcje::PobierzHaslo()
   {
   return haslo;
   }

string Opcje::PobierzKatalogSkanera()
   {
   return katalog_skanera;
   }

string Opcje::PobierzLogin()
   {
   return login;
   }

string Opcje::PobierzNazweUslugi()
   {
   return nazwa_uslugi;
   }

string Opcje::PobierzOpisUslugi()
   {
   return opis_uslugi;
   }

string Opcje::PobierzSerwer()
   {
   return serwer;
   }

string Opcje::PobierzZdalnyKatalog()
   {
   return zdalny_katalog;
   }
